package com.zkt.oss.adapter.impl;

import com.zkt.oss.entity.FileInfo;
import com.zkt.oss.adapter.StorageAdapter;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.LinkedList;
import java.util.List;

/**
 * @author 赵开泰
 * @program jc-club
 * @date 2025/3/17 22:11
 * @description 阿里文件存储适配器实现
 **/

public class AliyunStorageAdapter implements StorageAdapter {
	
	/**
	 * 创建bucket桶
	 *
	 * @param bucketName 桶名称
	 */
	@Override
	public void createBucket(String bucketName) {
	
	}
	
	/**
	 * 列出所有桶
	 *
	 * @return 所有桶名称
	 */
	@Override
	public List<String> getAllBuckets() {
		List<String> list = new LinkedList<>();
		list.add("aliyun");
		return list;
	}
	
	/**
	 * 删除桶
	 *
	 * @param bucketName 桶名称
	 */
	@Override
	public void deleteBucket(String bucketName) {
	
	}
	
	/**
	 * 上传文件
	 *
	 * @param uploadFile 上传的文件
	 * @param bucketName 桶名称
	 * @param objectName 文件名
	 */
	@Override
	public void uploadFile(MultipartFile uploadFile, String bucketName, String objectName) {
	
	}
	
	/**
	 * 下载文件
	 *
	 * @param bucketName 桶名称
	 * @param objectName 文件名
	 * @return 文件输入流
	 */
	@Override
	public InputStream downloadFile(String bucketName, String objectName) {
		return null;
	}
	
	/**
	 * 列出当前桶的文件
	 *
	 * @param bucketName 桶名称
	 * @return 文件列表
	 */
	@Override
	public List<FileInfo> getAllFile(String bucketName) {
		return List.of();
	}
	
	/**
	 * 删除文件
	 *
	 * @param bucketName 桶名称
	 * @param objectName 文件名
	 */
	@Override
	public void deleteObject(String bucketName, String objectName) {
	
	}
	
	/**
	 * 获取文件的url地址
	 *
	 * @param bucket     桶名称
	 * @param objectName 文件名
	 * @return 文件url地址
	 */
	@Override
	public String getUrl(String bucket, String objectName) {
		return "";
	}
}